package com.zx.ishopping.services;


import com.zx.ishopping.DTO.GetOrderListDTO;
import com.zx.ishopping.DTO.OrderDTO;
import com.zx.ishopping.DTO.OrderPageDTO;
import com.zx.ishopping.VO.OrderVo;
import com.zx.ishopping.entity.OrderStatusCount;
import com.zx.ishopping.results.PageResult;

import java.util.List;

public interface OrderService {
    /**
     * 订单分页查询
     * @param orderPageQueryDTO
     * @return
     */
    PageResult pageQuery(OrderPageDTO orderPageQueryDTO);

    /**
     * 根据id删除订单
     * @param id
     */
    void deleteOrder(Long id);

    /**
     * 更新订单
     * @param orderDTO
     */
    void updateOrder(OrderDTO orderDTO);

    /**
     * 更新订单状态
     * @param status
     */
    void updateOrderStatus(Integer status,Long id);

    /**
     * 获取订单状态数量
     */
    List<OrderStatusCount> getOrderCountByStatus();

    /**
     * 根据状态获取订单状态
     * @param getOrderListDTO
     * @return
     */
    List<OrderVo> getOrderList(GetOrderListDTO getOrderListDTO);

    /**
     * 用户下单
     * @return
     */
    void addOrder(Long addressId);
}
